/**
 * 
 */
package mx.unam.acatlan.poo.rps.player;

import java.util.Random;

import mx.unam.acatlan.poo.rps.RPSWorld;

/**
 * Un {@link Agent} que decide sus movements aleatoriamente.
 * 
 * <p style="text-align: justify">
 * En cada juego PPT, el jugador determina el movimiento que realizará
 * utilizando {@link Random#nextInt(int)}.
 * </p>
 * 
 * @author Carlos Alegria Galicia
 * @see Random
 */
public class RandomAgent extends Agent {

	/**
	 * La clase {@link Random} permite generar números pseudoaleatorios
	 * fácilmente.
	 */
	private Random random;
	
	/**
	 * Crea un {@link Agent} con el nombre "Agent Aleatorio"
	 * 
	 * <p>
	 * Para generar aleatoriamente sus movements, mantiene una instancia de
	 * la clase {@link Random}, utilizando como semilla
	 * {@link System#currentTimeMillis()}
	 * </p>
	 */
	public RandomAgent() {
		super("Agent Aleatorio");
		this.random = new Random(System.currentTimeMillis());
	}
	
	/* (non-Javadoc)
	 * @see mx.unam.acatlan.poo.rps.Jugador#jugarPPT(mx.unam.acatlan.poo.rps.RPSWorld)
	 */
	@Override
	public void play(RPSWorld rPSWorld) {
		rPSWorld.setMovimiento(RandomAgent.movements[this.random.nextInt(3)]);
	}
}
